package com.synjones.zeuscloudweb.dao;

import com.synjones.zeus.model.web.AdminBean;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author  yys
 * Description: 用户管理Mapper
 * @date  created in 15:17 2018-01-08
 * Modified by:
 */
@Mapper
public interface AdminDaoMapper {
 /**
   *  查询注册帐户名是否被占用
   *  @param userName
   *  @author yys
   *  Description:  查询注册帐户名是否被占用
   *  @date  15:32 2018-01-08
   *  @return  int
   *  throws
   */
    int selectCountAdminByAdminName(@Param("userName")String userName);
    /**
     *  管理员添加
     *  @param  adminBean 用户实体
     *  @author yys
     *  Description:  管理员添加
     *  @date  16:23 2018-01-08
     *  @return  null
     *  throws
     */
    void insertAdmin(AdminBean adminBean);
   /**
    *  分页获取管理员列表
    *   @param startTime 开始时间
    *   @param endTime 结束时间
    *  @param orderColumn 排序字段
    *  @param orderDir 排序方式
    *  @param userName 条件查询
    *  @author yys
    *  Description:  分页获取管理员列表
    *  @date  14:18 2018-01-09
    *  @return   List<AdminVO>
    *  throws
    */
    List<AdminBean> selectAdminByPage(@Param("startTime") String startTime ,@Param("endTime") String endTime,@Param("orderColumn") String orderColumn,
                                      @Param("orderDir") String orderDir,@Param("userName") String userName);
 /**
   *  修改管理员启用/停用状态
   *  @param adminBean
   *  @author yys
   *  Description:  修改管理员启用/停用状态
   *  @date  11:59 2018-01-10
   *  @return
   *  throws
   */
    void updateAdminAvailable(AdminBean adminBean);
    /**
     *  不同条件获取管理员列表
     *  @param adminBean
     *  @author yys
     *  description
     *  @date  17:15 2018-01-10
     *  @return  List<AdminVo> 0->>
     *  throws
     */
    List<AdminBean> selectAdmin(AdminBean adminBean);
 /**
   *  修改用户信息
   *  @param adminBean
   *  @author yys
   *  description
   *  @date  9:44 2018-01-11
   *  @return
   *  throws
   */
    void updateAdminByUserId(AdminBean adminBean);
 /**
   *  根据userId删除用户
   *  @param userId
   *  @author yys
   *  Description:  根据userId删除用户
   *  @date  15:46 2018-01-11
   *  @return
   *  throws
   */
    void deleteAdminByUserId(@Param("userId")String userId);
 /**
   *  根据userId获取管理员信息
   *  @param userId
   *  @author yys
   *  Description:  根据userId获取管理员信息
   *  @date  9:57 2018-01-12
   *  @return  AdminVO
   *  throws
   */
    AdminBean selectAdminByUserId(@Param("userId") String userId);
    /**
     *  根据userName获取管理员信息
     *  @param userName
     *  @author yys
     *  Description:  根据userName获取管理员信息
     *  @date  9:57 2018-01-12
     *  @return  AdminVO
     *  throws
     */
    AdminBean selectAdminByAdminName(@Param("userName")String userName);
 /**
   *  添加用户关联角色信息
   *  @param userId 用户ID
   *  @param roleId 角色ID
   *  @author yys
   *  description
   *  @date  15:51 2018-01-16
   *  @return
   *  throws
   */    
    void insertAdminRole(@Param("userId")String userId,@Param("roleId") String roleId);
 /**
   *  修改管理员角色关联ID
   *  @param userId 管理员Id
   *  @param roleId 角色Id
   *  @author yys
   *  Description:  修改管理员角色关联ID
   *  @date  17:37 2018-01-16
   *  @return
   *  throws
   */
    void updateAdminRole(@Param("userId")String userId,@Param("roleId") String roleId);
}
